Our invention relates to instantiation of software applications running on a computer. More particularly, our invention relates to instantiation of these applications, especially multi-tiered applications, from a meta data repository containing attributes and values of the attributes. A further aspect of our application is an n-tiered software application for Internet and/or Intranet deployment where the tiers pass data and commands between tiers.
Occasionally, revolutionary technology advances are made that redefine how business is conducted. Less than five years ago, one of these leaps occurred in the form of the Internet. Although the Internet itself had been in existence for decades, the addition of a powerful catalyst application, the World Wide Web, started a chain reaction. The result is a new software platform that unites companies, organizations, and individuals previously separated by geography, language, and culture into a virtually connected, electronic global village. This platform has dramatically reshaped-and will continue to affect-the nature of all computing, information exchange, and commerce.
As we move from the latter half of the 1990s and into 2000, the Internet is the driving impetus behind almost all new technology and application developments. As much as it has already changed the software industry, yet to come are the numerous solutions that will dramatically affect businesses and consumers worldwide. Organizations that take advantage of this new and advanced computing paradigm and utilize Internet-based software solutions will gain significant competitive advantage.
The greatest single effect the Internet will have is the creation of a global information architecture. This new infrastructure, based upon the TCP/IP protocol, is not limited to the public network currently known as the Internet. It also works for any other IP-based network environment, including private internal networks known as intranets.
A new generation of advanced, object-oriented, client/server application software will be one to take greatest advantage of this new Internet-enabled architecture. The promise of a totally open, extensible, and dynamically modifiable environment is something that the current generation of fourth-generation language-based xe2x80x9cclient/serverxe2x80x9d solutions cannot provide. Proprietary and inflexible fourth-generation languages (4GLs) are the primary reasons that today""s generation of client/server applications have failed to deliver upon their original promise. This new object-oriented, Internet-enabled architecture does not suffer from such limitations. It will enable the creation of a large new industry in their place, driving the client/server re-engineering revolution.
Since the late 1980s, client/server computing began to transform the corporate computing model. Client/server architecture provided unprecedented flexibility to groups, departments, and organizations within large corporations by taking advantage of internal networks and making centralized information available to everyone in a readily accessible from across the enterprise. This new model was directly pitted against the mainframe-based, centralized computing model of the past. Just as most of the monolithic, data-specific, mainframe-based applications didn""t survive the evolution to client/server, the new demands required by the Internet as a computing platform will eliminate many client/server applications from making the transition to global distributed computing.
The typical client/server product has a two-tiered architecture with a client application that communicates with a back-end relational database across a physical network.
Global enterprise computing imposes requirements on application software that exceed the capabilities of traditional client/server technologies. Requirements such as the ability to support heterogeneous environments, multiple languages, multimedia, the Internet and corporate intranets, and rapid application deployment and upgrades have exceeded the capabilities of 4GL client/server programming environments. In addition, a modem application software company must have a product architecture that supports rapid evolution.
Industry analysts agree that the client/server industry is rapidly transitioning to provide support for the Internet. As such, true distributed computing will for the first time be practical.
Where no one vendor was successful in creating a ubiquitous networking protocol standard, the powerful pressure exerted by the Internet resulted in the widespread adoption of TCP/IP as a network protocol across all computing platforms and network devices. This standardization has led to the very rapid rise of internal corporate intranets. Using the identical technology that supports connectivity across the public Internet, any company with an IP-compatible network can distribute information and Web-based applications throughout the enterprise. They can do it simply, at a low cost, and with a high probability of success.
Additionally, if a business is prepared to program at the level of TCP/IP (through a socket interface), they can create vastly more sophisticated applications at low risk and low cost. The world of distributed computing and applications has taken a dramatically positive upward turn because of the Internet.
However, this does present a challenge. Global enterprise computing imposes enormous requirements on application software that exceed the capabilities of mainframe-centric and traditional client/server technologies. Requirements such as the ability to support heterogeneous environments, multiple languages, multimedia, the Internet and corporate Intranets, and rapid application deployment and upgrades have exceeded the ability of 4GL client/server programming environments. Most organizations are not equipped to build or assemble technologies that overcome this challenge. In addition, a modem application software company must have a product architecture that supports rapid evolution because the requirements of tomorrow""s architecture will pass by today""s solution.
Along with the technical forces, business drivers such as the total cost of ownership exert influence on the application software architecture. The perfect technical solution will not be chosen if it is too costly to maintain, upgrade, or deploy. The right architecture achieves a balance of all relevant costs to reach the lowest possible total cost of ownership.
An architecture must cultivate user acceptance. The user community will not adopt a fast system with a poor user interface. Nor will they use a system that merely looks good, yet does not truly enhance the business transactions they must perform. The successful architecture is efficient and lean. It minimizes user actions, and conveys information in a manner that is easily understood by all. It is easy to learn, easy to use, and provides real value to its users.
In order to meet these challenges, the key elements of a comprehensive application architecture must include:
Familiar User Interface
Internationalization
Standards Compliance
Upgradability
Complete Development Tools
Configurability
Application Integration Ability
A further challenge for an Internet/Intranet based application or application suite is that according to leading industry analysts, there is an inherent dichotomy in the way that most organizations purchase and deploy application software, exacerbated by poor application architecture. Packaged software applications are typically chosen so that the customer can rely on the software vendor for support, enhancements, and a long term relationship. However, most companies wind up making heavy customizations to the application before they deploy it, then discover that the vendor can""t support those customizations. Taking enhancements is prohibitive because doing so would require making the customizations all over again at great expense.
In order to allow companies to customize their applications yet still receive the benefits of upgrades and supports, enterprise applications must provide four critical components:
Comprehensive Development Tools
Published Application Program Interfaces APIs
Complete Metadata Repository
Component Architecture
Additionally, an Internet-based client/server application must be capable of distributing itself widely across the Internet and supporting multiple combinations and configurations.
Specifically, a need exists for an Intranet/Internet based architecture and technology to support the rapid technology changes, including those associated with the Internet, including:
Replacement of the traditional client/server environment
Replacing existing WANs with Internet-based topologies and protocols
The rising popularity of multi-tiered development tools and applications
Rapid changes in software development methodologies
The increased use of software components and objects at all levels
The decline of monolithic desktop applications
The use of smaller and lighter Internet-based client applications
The use of the Internet as a software distribution channel
The use of the Internet to support customers
Requirement for true application data independence
The Internet must support heterogeneous devices and operating systems
The Internet is global and supports multiple languages
The Internet supports content of all kinds (e.g., multimedia, audio, video)
These requirements are necessary to provide an Internet-based client/server application that is capable of distributing itself widely across the Internet and supporting multiple combinations and configurations.
It as an object of the invention to provide a thin tiered application for the Internet/Intranet characterized in that only the minimum number of logic and data layers, if any, reside on the remote, browser, or client computer and that includes a familiar user interface, that is capable of internationalization, that has a high level of standards compliance, that has ready upgradability and configurability, and application integration ability along with configurability and the capability of providing complete development tools.
It is a further object of the invention to provide an architecture that allows companies to customize their applications yet still receive the benefits of upgrades and supports. This is accomplished through comprehensive development tools, published application program interfaces (API)s, a complete metadata repository, and consistent component architecture.
It is a still further object of the invention to provide capability for distributing itself widely across the Internet and supporting multiple combinations and configurations. This object includes replacement of the traditional client/server environment (including replacing existing WANs with Internet-based topologies and protocols, and support for multi-tiered development tools and applications), the capability of adapting to rapid changes in software development methodologies (including the increased use of software components and objects at all levels, the decline of monolithic desktop applications, the use of smaller and lighter Internet-based client applications, the use of the Internet as a software distribution channel, and the use of the Internet to support customers), and the requirement for true application data independence (where the Internet must support heterogeneous devices and operating systems and multiple languages, and varied content).
The above objects and other objects are provided by the method and program product of our invention. Specifically, through the use of a metadata repository and a tiered architecture having at least one tier on each computer, and that is instantiated through the contents of the metadata repository, we are able to instantiate an application running on multiple computers, where the application is one having multiple layers. The tiered application is constructed using object oriented programming such that the layers contain objects. The layers also have interfaces to pass data and commands between layers.
In one embodiment of our invention the instantiant data is stored in human readable attribute-value data tables.
In still another embodiment of our invention a program product is provided that contains machine readable program code for instantiating a tiered application using a meta database repository.